﻿<!DOCTYPE HTML>
<html lang="zh">
<head>
<title>WinGetClientPos - 语法 &amp; 使用 | AutoHotkey v2</title>
<meta name="description" content="The WinGetClientPos function retrieves the position and size of the specified window's client area." />
<meta name="ahk:equiv-v1" content="lib/WinGetPos.htm" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="../static/theme.css" rel="stylesheet" type="text/css" />
<script src="../static/content.js" type="text/javascript"></script>
</head>
<body>

<h1>WinGetClientPos</h1>

<p>检索指定窗口的工作区的位置和大小.</p>

<pre class="Syntax"><span class="func">WinGetClientPos</span> <span class="optional">&amp;OutX, &amp;OutY, &amp;OutWidth, &amp;OutHeight, WinTitle, WinText, ExcludeTitle, ExcludeText</span></pre>
<h2 id="Parameters">参数</h2>
<dl>

  <dt>&amp;OutX, &amp;OutY</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#variable-references">VarRef</a></p>
    <p>如果省略, 将不会存储相应的值. 否则, 请指定用于存储工作区左上角的 X 和 Y 坐标的输出变量的引用. </p>
  </dd>

  <dt>&amp;OutWidth, &amp;OutHeight</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#variable-references">VarRef</a></p>
    <p>如果省略, 将不会存储相应的值. 否则, 请指定用于存储工作区宽度和高度的输出变量的引用.</p>
  </dd>

  <dt>WinTitle, WinText, ExcludeTitle, ExcludeText</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#strings">字符串</a>, <a href="../Concepts.htm#numbers">整数</a>或<a href="../Concepts.htm#objects">对象</a></p>
    <p>如果这些都是空白或省略, 将使用<a href="../misc/WinTitle.htm#LastFoundWindow">上次找到的窗口</a>. 否则, 为 <em>WinTitle</em> 指定<a href="../misc/WinTitle.htm">窗口标题或其他条件</a>, 来标识目标窗口, 和/或为 <em>WinText</em> 指定目标窗口的单个文本元素的子字符串(由包含的 Window Spy 实用程序显示).</p>
    <p><em>ExcludeTitle</em> 和 <em>ExcludeText</em> 可用于根据标题或文本排除一个或多个窗口. 它们的规范类似于 <em>WinTitle</em> 和 <em>WinText</em>, 除了 <em>ExcludeTitle</em> 不识别除窗口标题之外的任何条件.</p>
    <p>窗口标题和文本是区分大小写的. 默认情况下, 不检测隐藏窗口, 而检测隐藏文本元素, 除非使用 <a href="DetectHiddenWindows.htm">DetectHiddenWindows</a> 和 <a href="DetectHiddenText.htm">DetectHiddenText</a> 进行更改. 默认情况下, 窗口标题的任意位置包含 <em>WinTitle</em> 或 <em>ExcludeTitle</em> 就能形成匹配, 除非使用 <a href="SetTitleMatchMode.htm">SetTitleMatchMode</a> 进行了更改.</p>
  </dd>

</dl>

<h2 id="Error_Handling">错误处理</h2>
<p>如果找不到窗口, 则抛出 <a href="Error.htm#TargetError">TargetError</a>.</p>

<h2 id="Remarks">备注</h2>
<p>工作区是窗口的一部分, 可以包含控件. 它不包括窗口的标题栏, 菜单栏(如果有标准菜单) 和边框. 与 <a href="WinGetPos.htm">WinGetPos</a> 返回的值相比, 工作区的位置和大小较少地依赖于操作系统版本和主题.</p>
<p>如果 <em>WinTitle</em> 为 <code>"Program Manager"</code>, 该函数将检索桌面的大小, 通常与当前屏幕分辨率相同.</p>
<p>最小化的窗口仍然有位置和大小. 在这种情况下, 返回的值可能因操作系统和配置而异, 但是 X 和 Y 坐标通常为 -32000, 而宽度和高度为 0.</p>
<p>要发现鼠标当前悬停在其上的窗口和控件的名称, 请使用 <a href="MouseGetPos.htm">MouseGetPos</a>.</p>
<p>在具有不同 DPI 设置的多个屏幕的系统上, 由于<a href="../misc/DPIScaling.htm">操作系统 DPI 缩放</a>, 返回的位置和大小可能与预期不同.</p>

<h2 id="Related">相关</h2>
<p><a href="WinGetPos.htm">WinGetPos</a>, <a href="WinMove.htm">WinMove</a>, <a href="ControlGetPos.htm">ControlGetPos</a>, <a href="WinGetTitle.htm">WinGetTitle</a>, <a href="WinGetText.htm">WinGetText</a>, <a href="ControlGetText.htm">ControlGetText</a></p>

<h2 id="Examples">示例</h2>
<div class="ex" id="ExBasic">
<p><a class="ex_number" href="#ExBasic"></a> 获取和报告计算器工作区域的位置和大小.</p>
<pre>WinGetClientPos &amp;X, &amp;Y, &amp;W, &amp;H, "Calculator"
MsgBox "Calculator's client area is at " X "," Y " and its size is " W "x" H</pre>
</div>

<div class="ex" id="ExA">
<p><a class="ex_number" href="#ExA"></a> 获取并报告活动窗口工作区域的位置.</p>
<pre>WinGetClientPos &amp;X, &amp;Y,,, "A"
MsgBox "The active window's client area is at " X "," Y</pre>
</div>

<div class="ex" id="ExLastFound">
<p><a class="ex_number" href="#ExLastFound"></a> 如果记事本存在, 检索并报告其工作区域的位置.</p>
<pre>if WinExist("Untitled - Notepad")
{
    WinGetClientPos &amp;Xpos, &amp;Ypos <em>; 使用由 WinExist 找到的窗口.</em>
    MsgBox "Notepad's client area is at " Xpos "," Ypos
}</pre>
</div>

</body>
</html>